package com.baidu._02_Tongpeifu;

import java.util.ArrayList;
import java.util.List;

/*
    练习泛型通配符
 */
public class Test {
    public static void main(String[] args) {
        List<Integer> list1 = new ArrayList<>();
        List<Number> list2 = new ArrayList<>();
        List<Object> list3 = new ArrayList<>();

        //method(list1); // 由于泛型没有多态，不允许左右两边的数据类型不一致
        // 为了解决这种问题，需要使用泛型通配符

        method(list1);
        method(list2);
        //method(list3); // 由于泛型上限的限定，只能传递lsit1和list2

        //method2(list1);
        method2(list2);
        method2(list3);
    }

    //method方法允许接收 集合中存放的是 Number或者Integer两种类型，要求这个method方法都要能接收
    public static void method(List<? extends Number> list){ // 上限

    }

    // 要求接收Number和Number的父亲
    public static void method2(List<? super Number> list){// 下限

    }
}
